This was not working in the case that the existing child
is not a scrollable. It showed up as crashes of the
scrolling benchmark in gtk4-demo when switching examples.
if (priv->child)
{
- if (!priv->auto_added_viewport)
+ if (priv->auto_added_viewport)
{
- scrollable_child = priv->child;
- }
- else
- {
- scrollable_child = gtk_viewport_get_child (GTK_VIEWPORT (priv->child));
gtk_viewport_set_child (GTK_VIEWPORT (priv->child), NULL);
}
- g_object_set (scrollable_child,
+ g_object_set (priv->child,
"hadjustment", NULL,
"vadjustment", NULL,
NULL);
+
g_clear_pointer (&priv->child, gtk_widget_unparent);
}